home *** CD-ROM | disk | FTP | other *** search
/ MacAddict 123 / MacAddict_123_2006_11.iso / Software / Utilities / VelaClock 1.9.wdgt / Scripts / button.js < prev    next >
Text File  |  2006-08-29  |  4KB  |  121 lines

  1. /*
  2. Copyright ¬© 2005, Apple Computer, Inc.  All rights reserved.
  3. NOTE:  Use of this source code is subject to the terms of the Software
  4. License Agreement for Mac OS X, which accompanies the code.  Your use
  5. of this source code signifies your agreement to such license terms and
  6. conditions.  Except as expressly granted in the Software License Agreement
  7. for Mac OS X, no other copyright, patent, or other intellectual property
  8. license or right is granted, either expressly or by implication, by Apple.
  9. */
  10.  
  11. function createButton (div, title, onaction, minwidth)
  12. {
  13.     div.style.height = "21px";
  14.     div.style.appleDashboardRegion = 'dashboard-region(control rectangle)';
  15.     var element = document.createElement ('img');
  16.     element.src = 'Images/button_left.png';
  17.     div.appendChild (element);
  18.     
  19.     element = document.createElement('div');
  20.     element.setAttribute ("style", 'font:11px "Helvetica Neue";font-weight:bold;color:rgba(0,0,0,0.7);text-shadow: 0px 1px rgba(255,255,255,0.46);display:inline-block;text-align:center;line-height:20px;background:url(Images/button_center.png) repeat-x top left;');    
  21.     element.style.height = '20px';
  22.     element.style.paddingBottom = '1px';
  23.     div.appendChild (element);
  24.     element.innerHTML = title;
  25.     
  26.     if (minwidth !== undefined)
  27.     {
  28.         element.style.minWidth = (minwidth - 26) + "px"; // 26 hard code size of left and right
  29.     }
  30.     
  31.     element = document.createElement ('img');
  32.     element.src = 'Images/button_right.png';
  33.     div.appendChild (element);
  34.     
  35.     div.setAttribute ("onmousedown", "buttonMouseDownHandler(event, this);");
  36.     div.buttonInside = true;
  37.     div.buttonAction = onaction;
  38.     
  39.     // force the images to load.
  40.     var img = new Image;
  41.     img.src = 'Images/button_left_pressed.png';
  42.     var img = new Image;
  43.     img.src = 'Images/button_center_pressed.png';
  44.     var img = new Image;
  45.     img.src = 'Images/button_right_pressed.png';
  46. }
  47.  
  48. // do not call the following methods directly
  49. var buttonCurrentMouseDownButton = null;
  50. function buttonMouseDownHandler(event, div)
  51. {
  52.     div.childNodes[0].src = 'Images/button_left_pressed.png';
  53.     div.childNodes[1].style.backgroundImage = 'url(Images/button_center_pressed.png)';
  54.     div.childNodes[2].src = 'Images/button_right_pressed.png';
  55.     
  56.     document.addEventListener("mousemove", buttonMouseMoveHandler, true);
  57.     document.addEventListener("mouseup", buttonMouseUpHandler, true);
  58.     div.addEventListener("mouseover", buttonMouseOverHandler, true);
  59.     div.addEventListener("mouseout", buttonMouseOutHandler, true);
  60.     
  61.     div.buttonInside = true;
  62.     buttonCurrentMouseDownButton = div;
  63.     
  64.     event.stopPropagation();
  65.     event.preventDefault();
  66.  
  67. }
  68.  
  69. function buttonMouseMoveHandler (event)
  70. {
  71.     event.stopPropagation();
  72.     event.preventDefault();
  73. }
  74.  
  75. function buttonMouseOverHandler (event)
  76. {
  77.     buttonCurrentMouseDownButton.childNodes[0].src = 'Images/button_left_pressed.png';
  78.     buttonCurrentMouseDownButton.childNodes[1].style.backgroundImage = 'url(Images/button_center_pressed.png)';
  79.     buttonCurrentMouseDownButton.childNodes[2].src = 'Images/button_right_pressed.png';
  80.     
  81.     buttonCurrentMouseDownButton.buttonInside = true;
  82.  
  83.     event.stopPropagation();
  84.     event.preventDefault();
  85. }
  86.  
  87. function buttonMouseOutHandler (event)
  88. {
  89.     buttonCurrentMouseDownButton.childNodes[0].src = 'Images/button_left.png';
  90.     buttonCurrentMouseDownButton.childNodes[1].style.backgroundImage = 'url(Images/button_center.png)';
  91.     buttonCurrentMouseDownButton.childNodes[2].src = 'Images/button_right.png';
  92.  
  93.     buttonCurrentMouseDownButton.buttonInside = false;
  94.     
  95.     event.stopPropagation();
  96.     event.preventDefault();
  97. }
  98.  
  99. function buttonMouseUpHandler (event)
  100. {
  101.     buttonCurrentMouseDownButton.childNodes[0].src = 'Images/button_left.png';
  102.     buttonCurrentMouseDownButton.childNodes[1].style.backgroundImage = 'url(Images/button_center.png)';
  103.     buttonCurrentMouseDownButton.childNodes[2].src = 'Images/button_right.png';
  104.  
  105.     // callback to the client
  106.     document.removeEventListener("mousemove", buttonMouseMoveHandler, true);
  107.     document.removeEventListener("mouseup", buttonMouseUpHandler, true);    
  108.     buttonCurrentMouseDownButton.removeEventListener("mouseover", buttonMouseOverHandler, true);
  109.     buttonCurrentMouseDownButton.removeEventListener("mouseout", buttonMouseOutHandler, true);
  110.         
  111.     event.stopPropagation();
  112.     event.preventDefault();
  113.         
  114.     if (buttonCurrentMouseDownButton.buttonAction && buttonCurrentMouseDownButton.buttonInside)
  115.     {
  116.         buttonCurrentMouseDownButton.buttonAction();
  117.     }
  118.     
  119.     buttonCurrentMouseDownButton = null;
  120. }
  121.